import store from '@/store'
import Vue from 'vue';

export default {
  bind: function (el, binding, vnode) {
    // 获取页面按钮权限
    let btnPermissionsArr = [];
    if(binding.value){
        // 如果指令传值，获取指令参数，根据指令参数和当前登录人按钮权限做比较。
        btnPermissionsArr = Array.of(binding.value);
    }else{
        // 否则获取路由中的参数，根据路由的btnPermissionsArr和当前登录人按钮权限做比较。
        btnPermissionsArr = vnode.context.$route.meta.btnPermissions;
        console.log('btnPermissionsArr',btnPermissionsArr)
    }
    if (!Vue.prototype.$_has(btnPermissionsArr)) {
        // el.parentNode.removeChild(el);
        el.style.display = 'none';
        el.dataset['isRemove'] = '1';
    }
},
inserted: function (el) {
  if(el.dataset['isRemove']=== '1'){
    el.parentNode.removeChild(el);
  }
}

// inserted：被绑定元素插入父节点时调用 (仅保证父节点存在，但不一定已被插入文档中)。
  // inserted(el, binding, vnode) {
  //   const { value } = binding
  //   const all_permission = "*:*:*";
  //   const permissions = store.getters && store.getters.permissions

  //   if (value && value instanceof Array && value.length > 0) {
  //     const permissionFlag = value

  //     const hasPermissions = permissions.some(permission => {
  //       return all_permission === permission || permissionFlag.includes(permission)
  //     })

  //     if (!hasPermissions) {
  //       el.parentNode && el.parentNode.removeChild(el)
  //       // 或者：el.style.display = 'none'
  //     }
  //   } else {
  //     throw new Error(`请设置操作权限标签值`)
  //   }
  // }
}
// 权限检查方法
Vue.prototype.$_has = function (value) {
  let isExist = false;
  // 获取用户按钮权限
  let btnPermissionsStr = store.getters.permissions
  console.log('btnPermissionsStr',btnPermissionsStr)
  if (btnPermissionsStr == undefined || btnPermissionsStr == null) {
      return false;
  }
  if (value.indexOf(btnPermissionsStr) > -1) {
      isExist = true;
  }
  return isExist;
};
// export {has}